package com.fdb.efp.nls.service.facade;

import com.fdb.efp.nls.service.vo.ContTempGVO;
import com.fdb.efp.nls.service.vo.ContTempRelGVO;

import java.util.List;

/**
 * <p>Description:合同模板组信息表				<p>
 * @author fuzm
 * @date 2018-05-07
 */
public interface ContTempGService {
	/**
	 * 默认登录人所属法人机构
	 * @param contTempGVo
	 * @return
	 */
	public List<ContTempGVO> queryAllCurrLegalOrgByPage(ContTempGVO contTempGVo);
	
	public List<ContTempGVO> queryAllOwner(ContTempGVO contTempGVo);
	
	public List<ContTempGVO> queryAllCurrOrg(ContTempGVO contTempGVo);
	
	public List<ContTempGVO> queryAllCurrDownOrg(ContTempGVO contTempGVo);
	
	public int insertContTempG(ContTempGVO inContTempGVo);
	/**
	 * 插入信息， 并且返回插入的信息(获取主键)
	 * @param inContTempGVo
	 * @return
	 */
	public ContTempGVO insertContTempGBack(ContTempGVO inContTempGVo);
	
	public int deleteByPk(ContTempGVO contTempGVo);
	
	public int updateByPk(ContTempGVO contTempGVo);
	/**
	 * 更新信息， 并且使合同模版组生效
	 * @param contTempGVo
	 * @return -3: 合同模版组未关联合同模版, 不可以生效
	 */
	public int updateSubmitByPk(ContTempGVO inContTempGVo);
	
	/**
	 * 失效 合同模版组
	 * @param contTempGVo
	 * @return -2: 存在生效产品引用该合同模版组
	 */
	public int disableContTempG(ContTempGVO contTempGVo);
	
	public ContTempGVO queryByPk(ContTempGVO contTempGVo);
	/**
	 * 新增合同模版组关联信息
	 * @param contTempRelGVO
	 * @return -2:已存在 合同模版组关联信息; -3: 存在关联合同模版组的合同模版 模版种类, 合同类型, 是否最高额合同三种纬度相同的合同模板!
	 */
	public int insertContTempRelG(ContTempRelGVO contTempRelGVO);
	/**
	 * 删除合同模版组关联信息
	 * @param contTempRelGVO
	 * @return 
	 */
	public int deleteContTempRelG(ContTempRelGVO contTempRelGVO);
	/**
	 * 查询当前登录用户的 法人机构 下生效的合同模版组
	 * @param contTempRelGVO
	 * @return
	 */
	public List<ContTempGVO> queryAllEnables(ContTempGVO contTempGVo);

}
